package ar.fiuba.tp7552.buildadmin.dao.impl;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Expression;
import org.springframework.transaction.annotation.Transactional;

import ar.fiuba.tp7552.buildadmin.dao.GenericDaoHibernate;
import ar.fiuba.tp7552.buildadmin.dao.TipoPropiedadDao;
import ar.fiuba.tp7552.buildadmin.model.builds.Edificio;
import ar.fiuba.tp7552.buildadmin.model.builds.TipoPropiedad;

@Transactional
public class TipoPropiedadDaoImpl 
		extends GenericDaoHibernate<TipoPropiedad, Long> 
		implements TipoPropiedadDao{

	public TipoPropiedadDaoImpl() {
		super(TipoPropiedad.class);
	}
	
	@Override
	public TipoPropiedad findByTipoPropiedadname(String tipoPropiedad, Edificio edificio) {
		Session session = this.getHibernateSession();
		Criteria criteria = session.createCriteria(TipoPropiedad.class);
		criteria.add(Expression.eq("nombre", tipoPropiedad));
		criteria.add(Expression.eq("edificio", edificio))
			.setMaxResults(1);
		return (TipoPropiedad) criteria.uniqueResult();
	}

}